package com.haixiaoke.saas.house.mapper;

import com.haixiaoke.saas.house.domain.Unit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 单元Mapper接口
 *
 * @author xiaolong
 * @date 2023-10-17
 */
public interface UnitMapper {
    /**
     * 查询单元
     *
     * @param unitId 单元主键
     * @return 单元
     */
    Unit selectUnitByUnitId(String unitId);

    /**
     * 查询单元列表
     *
     * @param unit 单元
     * @return 单元集合
     */
    List<Unit> selectUnitList(Unit unit);

    /**
     * 新增单元
     *
     * @param unit 单元
     * @return 结果
     */
    int insertUnit(Unit unit);

    /**
     * 修改单元
     *
     * @param unit 单元
     * @return 结果
     */
    int updateUnit(Unit unit);

    /**
     * 删除单元
     *
     * @param unitId 单元主键
     * @return 结果
     */
    int deleteUnitByUnitId(String unitId);

    /**
     * 批量删除单元
     *
     * @param unitIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteUnitByUnitIds(String[] unitIds);

    /**
     * 根据楼栋id统计单元数量
     *
     * @param buildingId
     * @param delFlag
     * @return
     */
    int selectUnitByUnitNumber(@Param("buildingId")  String buildingId, @Param("delFlag") String delFlag, @Param("tenantId") String tenantId);

    /**
     * 根据楼栋id删除单元信息
     * @param buildingId
     * @return
     */
    int deleteUnitByBuildingId(String buildingId);


    List<Unit> selectUnitByUnitIds(Unit unit);

    Unit selectUnitByUnitBuildingAndUnitName(@Param("buildingId") String buildingId,@Param("unitName") String unitName);
}
